Stationarity নিশ্চিত করার জন্য Techniques (Differencing, Detrending)

Stationary Time Series এবং Non-stationary Time Series - টাইম সিরিজ (Time Series) - Machine Learning

231

টাইম সিরিজ বিশ্লেষণে স্টেশনারিটি একটি গুরুত্বপূর্ণ উপাদান। স্টেশনারিটি নিশ্চিত না হলে, টাইম সিরিজ মডেলিং সঠিকভাবে কাজ নাও করতে পারে। স্টেশনারিটি নিশ্চিত করার জন্য বিভিন্ন টেকনিক ব্যবহার করা হয়, যেমন ডিফারেন্সিং (Differencing) এবং ডিট্রেন্ডিং (Detrending)। নিচে এই দুটি টেকনিক্স সম্পর্কে বিস্তারিত আলোচনা করা হলো।


১. ডিফারেন্সিং (Differencing)

বর্ণনা:
ডিফারেন্সিং হল একটি পদ্ধতি, যা টাইম সিরিজের ট্রেন্ড সরানোর জন্য ব্যবহৃত হয়। এই প্রক্রিয়াতে বর্তমান মান এবং পূর্ববর্তী মানের মধ্যে পার্থক্য (difference) নেওয়া হয়। ডিফারেন্সিং মূলত ট্রেন্ড সরাতে ব্যবহৃত হয় এবং এটি টাইম সিরিজকে স্টেশনারি করার জন্য ব্যবহৃত হয়।

এটি সাধারণত প্রথম ডিফারেন্স (First Differencing) অথবা দ্বিতীয় ডিফারেন্স (Second Differencing) করা হয়।

প্রথম ডিফারেন্স (First Differencing):

  • বর্তমান মান থেকে পূর্ববর্তী মানের পার্থক্য বের করা হয়।
  • যদি ডেটার মধ্যে একটি স্পষ্ট ট্রেন্ড থাকে, তবে প্রথম ডিফারেন্স প্রয়োগ করার মাধ্যমে ট্রেন্ড সরানো সম্ভব হতে পারে।

দ্বিতীয় ডিফারেন্স (Second Differencing):

  • যদি প্রথম ডিফারেন্স যথেষ্ট না হয়, তবে দ্বিতীয় ডিফারেন্স নেওয়া হয়, যা আরও উন্নত পার্থক্য বের করে।

পদ্ধতি:

  • Yt=YtYt1Y_t' = Y_t - Y_{t-1} (প্রথম ডিফারেন্স)
  • Yt=YtYt1Y_t'' = Y_t' - Y_{t-1}' (দ্বিতীয় ডিফারেন্স)

উদাহরণ:

import pandas as pd

# Sample data
data = {'Date': ['2020-01', '2020-02', '2020-03', '2020-04', '2020-05'],
        'Value': [100, 120, 150, 130, 160]}
df = pd.DataFrame(data)

# First differencing
df['First_Difference'] = df['Value'] - df['Value'].shift(1)

২. ডিট্রেন্ডিং (Detrending)

বর্ণনা:
ডিট্রেন্ডিং হল টাইম সিরিজ থেকে ট্রেন্ড সরানোর একটি প্রক্রিয়া। এটি ট্রেন্ড কমানোর জন্য মুভিং অ্যাভারেজ (Moving Average), লিনিয়ার রিগ্রেশন (Linear Regression) বা অন্যান্য মডেল ব্যবহার করে করতে হয়। ডিট্রেন্ডিংয়ের মাধ্যমে টাইম সিরিজের মধ্যে থাকা দীর্ঘমেয়াদী প্রবণতা দূর করা হয় এবং শুধুমাত্র সিজনাল এবং র্যান্ডম উপাদানগুলো রেখে দেয়া হয়।

পদ্ধতি:

  1. মুভিং অ্যাভারেজ (Moving Average): মুভিং অ্যাভারেজ ব্যবহার করে টাইম সিরিজের সাধারণ ট্রেন্ড মুছে ফেলা যায়। এটি ডেটার একটি স্থানীয় গড় নেয় এবং অতিরিক্ত উত্থান-পতন সরিয়ে দেয়।

    এটি মুভিং অ্যাভারেজ ট্রেন্ড সরানোর প্রক্রিয়া:

    • Yt=YtMAtY_t^{*} = Y_t - MA_t (এখানে MA_t হল মুভিং অ্যাভারেজ)
  2. লিনিয়ার রিগ্রেশন (Linear Regression): এটি একটি সাধারণ পদ্ধতি, যেখানে টাইম সিরিজের ওপর একটি লিনিয়ার রিগ্রেশন মডেল ফিট করা হয় এবং তার পরবর্তী পূর্বাভাস থেকে ট্রেন্ড সরানো হয়। এই মডেলটি সাধারণত গড় প্রবণতা শনাক্ত করতে সাহায্য করে।

উদাহরণ:

from sklearn.linear_model import LinearRegression

# Sample data
import numpy as np
import pandas as pd

data = {'Date': pd.date_range('2020-01-01', periods=5, freq='M'),
        'Value': [100, 120, 150, 130, 160]}
df = pd.DataFrame(data)

# Linear regression detrending
X = np.array(range(len(df))).reshape(-1, 1)  # Time variable
y = df['Value']

model = LinearRegression().fit(X, y)
df['Trend'] = model.predict(X)

# Detrended series
df['Detrended'] = df['Value'] - df['Trend']

সারাংশ

স্টেশনারিটি নিশ্চিত করার জন্য ডিফারেন্সিং এবং ডিট্রেন্ডিং দুটি গুরুত্বপূর্ণ টেকনিক। ডিফারেন্সিং টাইম সিরিজ থেকে ট্রেন্ড সরানোর জন্য ব্যবহৃত হয়, যেখানে ডেটার পরবর্তী মানের সাথে পূর্ববর্তী মানের পার্থক্য বের করা হয়। অন্যদিকে, ডিট্রেন্ডিং এমন একটি প্রক্রিয়া যেখানে মুভিং অ্যাভারেজ বা লিনিয়ার রিগ্রেশন ব্যবহার করে ট্রেন্ড সরানো হয়। এই টেকনিকগুলো টাইম সিরিজ বিশ্লেষণ এবং মডেলিংয়ের জন্য ডেটাকে স্টেশনারি বানাতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...